“Caching” is a known technique for reducing bandwidth or latency in data transmissions. Conventional methods of caching work by keeping a local store of memory (the cache) where received data is kept in anticipation of future need.
There are two main methods for filling the cache:
1) Whenever something is requested, keep the received data in the cache for a time in case it is needed again. If the prediction is true, subsequent lookups from the local cache are both faster and save bandwidth in the transmission channel; and
2) Whenever something is requested, request logically following items whenever there is idle time in the transmission channel. In this case, some of the bandwidth is likely to be wasted because it is not always possible to predict with 100% accuracy what data is needed next. However, any time the prediction is true the latency is improved because the request for the data and therefore the transmission occurs earlier than without the pre-fetching.
Note that the first transmission of the data is never eliminated with a conventional cache. The data may be compressed, but it still needs to be transmitted at least once.
A conventional cache requires read/write memory and typically has limited storage space, so there is usually some policy to decide when something is eliminated from the cache to make room for new entries. For example, the time since the last access might be used to delete the oldest entries. Therefore, if data from the conventional cache is used relatively infrequently, it might never be in the cache when needed.
Furthermore, conventional caches are based on decision making only at the receiving end of the transmission channel. The transmitter only sends data in response to requests, and is not aware of which data will be cached, or what the current status of the cache is. Therefore, even if a large amount of inexpensive processing power is available at the transmitter, in a conventional caching system this processing power cannot be used to improve the cache hit ratio and therefore the reduce consumption of expensive bandwidth.